有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

毕加索中的java错误get()无法应用于(安卓.content.Context)

我正在构建一个应用程序,当我试图释放apk时,我从毕加索的McContext中得到了这个错误,我在gradle中添加了com.squareup.picasso:picasso:2.5.2实现,但仍然存在问题,我将With()替换为get()和同样的问题:

get( )in Picasso cannot be applied to(安卓.content.Context)

package com.maker.Adapter;

import 安卓.content.Context;
import 安卓.content.CursorLoader;
import 安卓.database.Cursor;
import 安卓.graphics.Bitmap;
import 安卓.graphics.BitmapFactory;
import 安卓.net.Uri;
import 安卓.provider.MediaStore;
import 安卓x.recyclerview.widget.RecyclerView;
import 安卓.util.Log;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.ImageView;
import 安卓.widget.TextView;

import com.maker.MediaStorage.CursorRecyclerViewAdapter;
import com.maker.R;
import com.squareup.picasso.Picasso;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;


public class MostRecentImagesAdapter extends CursorRecyclerViewAdapter<MostRecentImagesAdapter.ViewHolder> {

    private Context mContext;
    private OnItemClickListener onItemClickListener;

    public MostRecentImagesAdapter(Context context, Cursor cursor) {
        super(context, cursor, "");
        mContext = context;
    }


    @Override
    public void onBindViewHolder(final ViewHolder viewHolder, final Cursor cursor, final int position) {

        viewHolder.setData(cursor);
        int int_ID = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media._ID));
        getThumbnail(int_ID, viewHolder.imgSd);


    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_storeage_image, parent, false);
        return new ViewHolder(itemView);
    }

    public void setOnItemClickListener(OnItemClickListener listener) {
        onItemClickListener = listener;
    }
    public OnItemClickListener getOnItemClickListener() {
        return onItemClickListener;
    }


    public interface OnItemClickListener {
        void onItemClick(ViewHolder item, int position);

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        private ImageView imgSd;
        private TextView txtSd;


        public ViewHolder(View v) {
            super(v);


            imgSd = (ImageView) v.findViewById(R.id.imgSd);
            txtSd = (TextView) v.findViewById(R.id.txtSd);

        }

        public void setData(Cursor cursor) {
            int uriIndex = getUriIndex(getCursor());
            String itemUri = getCursor().getString(uriIndex) + "/" + getCursor().getString(getCursor().getColumnIndexOrThrow(MediaStore.Video.Media._ID));
            txtSd.setText(itemUri);

        }
    }

    private int getUriIndex(Cursor c) {
        int uriIndex;
        String[] columnNames = {
                MediaStore.Video.Media.INTERNAL_CONTENT_URI.toString(),
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI.toString()
        };

        int i = 0;
        for (String columnName : Arrays.asList(columnNames)) {
            i++;
            Log.e(":Loadin", i + "");
            uriIndex = c.getColumnIndex(columnName);
            if (uriIndex >= 0) {
                return uriIndex;
            }
            // On some phones and/or Android versions, the column name includes the double quotes.
            uriIndex = c.getColumnIndex("\"" + columnName + "\"");
            if (uriIndex >= 0) {
                return uriIndex;
            }
        }
        return -1;
    }

    private Bitmap getThumbnail(int id, ImageView imageView) {
        final String thumb_DATA = MediaStore.Video.Thumbnails.DATA;
        final String thumb_IMAGE_ID = MediaStore.Video.Thumbnails.VIDEO_ID;
        final Uri thumbUri = MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI;
        String[] thumbColumns = {thumb_DATA, thumb_IMAGE_ID};
        CursorLoader thumbCursorLoader = new CursorLoader(
                mContext,
                thumbUri,
                thumbColumns,
                thumb_IMAGE_ID + "=" + id,
                null,
                null);
        Cursor thumbCursor = thumbCursorLoader.loadInBackground();
        Bitmap thumbBitmap = null;
        if (thumbCursor.moveToFirst()) {
            int thCulumnIndex = thumbCursor.getColumnIndex(thumb_DATA);
            String thumbPath = thumbCursor.getString(thCulumnIndex);
            Picasso.get(mContext).load(new File(thumbPath)).into(imageView);
        }
        return thumbBitmap;
    }

    private Bitmap decodeFile(File f) {
        try {
            // Decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeStream(new FileInputStream(f), null, o);

            // The new size we want to scale to
            final int REQUIRED_SIZE = 350;

            // Find the correct scale value. It should be the power of 2.
            int scale = 1;
            while (o.outWidth / scale / 2 >= REQUIRED_SIZE &&
                    o.outHeight / scale / 2 >= REQUIRED_SIZE) {
                scale *= 2;
            }

            BitmapFactory.Options o2 = new BitmapFactory.Options();
            o2.inSampleSize = scale;
            return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
        } catch (FileNotFoundException e) {
        }
        return null;
    }

}

共 (1) 个答案

  1. # 1 楼答案

    只需使用:

    Picasso.get()
      .load(new File(thumbPath))
      .into(imageView);